package cn.tedu.adminsystem.service;

import cn.tedu.community.commons.excepion.ServiceException;
import cn.tedu.community.commons.pojo.notice.dto.NoticeAddNewDTO;
import cn.tedu.community.commons.pojo.notice.dto.NoticeUpdateDTO;
import cn.tedu.community.commons.pojo.notice.vo.AdmNoticeListItemVO;
import cn.tedu.community.commons.pojo.notice.vo.AdmNoticeStandardVO;
import cn.tedu.community.commons.pojo.notice.vo.UserNoticeListItemVO;
import cn.tedu.community.commons.pojo.notice.vo.UserNoticeStandardVO;
import cn.tedu.community.commons.restful.JsonPage;

import org.springframework.transaction.annotation.Transactional;

/**
 * 公告Service
 */
@Transactional
public interface NoticeService {
    void addNew(NoticeAddNewDTO newDTO);

    void deleteById(Long id);

    void deleteByIds(Long[] ids);

    void update(Long id, NoticeUpdateDTO updateDTO);

    AdmNoticeStandardVO getAdmNoticeStandardById(Long id);

    JsonPage<AdmNoticeListItemVO> getAdmNoticeList(Integer page, Integer pageSize);

    JsonPage<AdmNoticeListItemVO> getAdmNoticeListByTitle(String title,Integer page,Integer pageSize);

    UserNoticeStandardVO getUserNoticeStandardById(Long id);

    JsonPage<UserNoticeListItemVO> getUserNoticeList(Integer page, Integer pageSize);

    /**
     * 重建redis缓存
     */
//    void rebuildCache();
}
